package gdr.window.online.server;

import gdr.window.*;
import gdr.dev.*;
import gdr.connection.*;
import gdr.window.menu.*;

public class OnlineServer extends BaseWindow{
	public static final int LARGHEZZA_COLONNA_SINISTRA = 170;
	public static final int MARGIN_TOP = 20;
	public static final int MARGIN_LEFT = 20;
	public static final int INTER_MARGIN_TOP = 10;
	public static final int INTER_MARGIN_LEFT = 20;
	public static final int ALTEZZA_STATO_SERVER = 170;
	
	protected Server server;
	protected Menu statoServer;
	
	public OnlineServer(SuperGDR9000 gdr){
		super(gdr);
		server = new Server(20000);
		
		super.setVisible(true);
		super.setFocused(false);
		super.setNeedRefresh(true);
		
		super.setDefaultIsFocused(false);
		super.setDefaultIsVisible(true);
		super.setDefaultNeedRefresh(true);
	}
	
	public void startServer(){
		statoServer = new Menu(gdr){
			protected void updateWindow(long elapsedTime){
				addMenuOption(new Opzione(IPGetter.ip(),false,true), 1, 1);
				addMenuOption(new Opzione(server.getPort()+"",false,true), 2, 1);
				addMenuOption(new Opzione(server.getServerStateDescription(),false,true), 3, 1);
				addMenuOption(new Opzione(server.getManager().getConnessioni().size()+"",false,true), 4, 1);
				addMenuOption(new Opzione(server.getManager().getRegisteredUsers().size()+"",false,true), 5, 1);
				addMenuOption(new Opzione(server.getManager().getBattaglie().size()+"",false,true), 6, 1);
			}
		};
		super.addChild(statoServer);
		statoServer.setVisible(true);
		statoServer.setNeedRefresh(true);
		statoServer.setFocused(false);
		statoServer.setWidth(LARGHEZZA_COLONNA_SINISTRA);
		statoServer.setHeight(ALTEZZA_STATO_SERVER);
		statoServer.setX(MARGIN_LEFT);
		statoServer.setY(MARGIN_TOP);
		statoServer.setAdattaAltezza(false);
		statoServer.setAdattaLarghezza(false);
		int row = 0;
		statoServer.addMenuOption(new Opzione("Server", false, true), row, 0);
		row++;
		statoServer.addMenuOption(new Opzione("IP Server", false, true), row, 0);
		statoServer.addMenuOption(new Opzione("", false, true), row, 1);
		row++;
		statoServer.addMenuOption(new Opzione("Porta", false, true), row, 0);
		statoServer.addMenuOption(new Opzione("", false, true), row, 1);
		row++;
		statoServer.addMenuOption(new Opzione("Stato", false, true), row, 0);
		statoServer.addMenuOption(new Opzione("", false, true), row, 1);
		row++;
		statoServer.addMenuOption(new Opzione("Connessi", false, true), row, 0);
		statoServer.addMenuOption(new Opzione("", false, true), row, 1);
		row++;
		statoServer.addMenuOption(new Opzione("Registrati", false, true), row, 0);
		statoServer.addMenuOption(new Opzione("", false, true), row, 1);
		row++;
		statoServer.addMenuOption(new Opzione("Battaglie", false, true), row, 0);
		statoServer.addMenuOption(new Opzione("", false, true), row, 1);
	
	}
	
	public void activate(){
		statoServer.setWindowVisibility(true, true, false);
		super.setWindowVisibility(true, true, false);
	}
}
